package chapter07_object;

/**
 * ClassName: AnimalTest
 * Package: chapter07_object
 * Description:
 *多态的应用场景（向上转型 子类-->父类）
 * @Author SherryAn
 * @Create 2025/7/18 13:25
 */

public class AnimalTest {//动物测试类
    public static void main(String[] args) {
        AnimalTest test=new AnimalTest();//创建一个动物测试对象test

        test.adopt(new Dog());//调用test的饲养方法，传参数时新建一个Dog对象
        test.adopt(new Cat());
    }
    public void adopt(Animal animal) {//饲养方法需要传对象参数
        animal.eat();
        animal.jump();
    }
}

class Animal{
    public void jump() {
        System.out.println("动物跳");
    }

    public void eat() {
        System.out.println("动物进食");
    }
}

class Dog extends Animal{
    public void eat(){
        System.out.println("狗吃骨头");//方法的重写，运用多态性调用时会执行被重写后的代码
    }

    public void jump(){
        System.out.println("狗跳");
    }

    public void watchDoor(){
        System.out.println("狗能看家");
    }

}
class Cat extends Animal{
    public void eat(){
        System.out.println("猫吃鱼");
    }

    public void jump(){
        System.out.println("猫跳");
    }

    public void catchMouse(){
        System.out.println("猫抓老鼠");
    }

}